package com.meeting.order.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.time.LocalDateTime;
import java.util.List;

public class RoomStatusDTO {
    @JsonProperty("roomId")
    private String roomId;
    
    @JsonProperty("roomName")
    private String roomName;
    
    @JsonProperty("facilities")
    private String facilities;
    
    @JsonProperty("status")
    private String status; // "free" 表示空闲, "occupied" 表示占用
    
    @JsonProperty("currentMeetings")
    private List<MeetingInfo> currentMeetings;
    
    public static class MeetingInfo {
        @JsonProperty("id")
        private Integer id;
        
        @JsonProperty("bookerName")
        private String bookerName;
        
        @JsonProperty("meetingTopic")
        private String meetingTopic;
        
        @JsonProperty("startTime")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private LocalDateTime startTime;
        
        @JsonProperty("endTime")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private LocalDateTime endTime;
        
        public Integer getId() {
            return id;
        }
        
        public void setId(Integer id) {
            this.id = id;
        }
        
        public String getBookerName() {
            return bookerName;
        }
        
        public void setBookerName(String bookerName) {
            this.bookerName = bookerName;
        }
        
        public String getMeetingTopic() {
            return meetingTopic;
        }
        
        public void setMeetingTopic(String meetingTopic) {
            this.meetingTopic = meetingTopic;
        }
        
        public LocalDateTime getStartTime() {
            return startTime;
        }
        
        public void setStartTime(LocalDateTime startTime) {
            this.startTime = startTime;
        }
        
        public LocalDateTime getEndTime() {
            return endTime;
        }
        
        public void setEndTime(LocalDateTime endTime) {
            this.endTime = endTime;
        }
    }
    
    public String getRoomId() {
        return roomId;
    }
    
    public void setRoomId(String roomId) {
        this.roomId = roomId;
    }
    
    public String getRoomName() {
        return roomName;
    }
    
    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    
    public String getFacilities() {
        return facilities;
    }
    
    public void setFacilities(String facilities) {
        this.facilities = facilities;
    }
    
    public String getStatus() {
        return status;
    }
    
    public void setStatus(String status) {
        this.status = status;
    }
    
    public List<MeetingInfo> getCurrentMeetings() {
        return currentMeetings;
    }
    
    public void setCurrentMeetings(List<MeetingInfo> currentMeetings) {
        this.currentMeetings = currentMeetings;
    }
}